#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
// 枚举
enum Sex {
    // 如果MALE没有初始化，从0开始，后续变量递增
    // 如果FEMALE初始化，比如10。则MALE是0，FEMALE是10，SECRET是11。
    MALE,  // 0
    FEMALE, // 1
    SECRET // 2
};
// 指针数组
const char *typeName[] = {
    [MALE] = "nan",
    [FEMALE] = "nv",
    [SECRET] = "-",
};

int main() {
    printf("0 = %s \n",typeName[0]); 
    printf("1 = %s \n",typeName[1]); 
    printf("2 = %s \n",typeName[2]); 
    return 0;
}

// // 3、#define 定义的标识符常量
// // 此处定义的常量可以用来初始化数组的大小
// #define MAX 10
// int main()
// {
//     // 数据的初始化只能使用常量，不能是变量（包括常变量）
//     int arr[MAX] = {1};
//     printf("%d\n",arr[0]);
//     return 0;
// }

// int main()
// {
//     // 使用n定义数组大小会报错:可变大小的对象不能被初始化
//     // int n = 10;
//     // int arr[n] = {1};

//     // n加上const，是变量，又有常属性，所以说n是常变量
//     // 此处仍旧不可以用来初始化数组
//     // const int n = 10;
//     // int arr[n] = {1};

//     int arr[10] = {1};
//     printf("%d\n",arr[0]);
//     return 0;
// }


// int main()
// {
//     3; // 字面常量
//     100; // 字面常量

//     // const修饰的常变量
//     const int num = 4;
//     printf("%d \n",num);
//     // 此时赋值会报错：向只读变量‘num’赋值
//     // num = 8;
//     printf("%d \n",num);

//     return 0;
// }
